<?php
class Funcionario extends Zend_Db_Table
{
	protected $_name = 'funcionario';
	protected $_primary = 'id_funcionario';

    public function __construct(){
		parent::__construct();
		$this->id_funcionario 	   = null;
		$this->dt_contratacao 	   = null;
		$this->ds_nome             = null;
		$this->ds_nome_credencial  = null;
		$this->ds_endereco    	   = null;
		$this->nr_endereco         = null;
		$this->ds_complemento      = null;
		$this->ds_cep              = null;
		$this->ds_bairro           = null;
		$this->id_cidade           = null;
		$this->ds_cargo            = null;
		$this->ds_email            = null;
		$this->ds_cpf			   = null;
		$this->ds_rg			   = null;
		$this->nr_telefone		   = null;
		$this->nr_celular		   = null;
		$this->ds_pais  		   = null;
		$this->ds_estado           = null;
    }

	private function populate($row){
		$this->id_funcionario 		= $row['id_funcionario'];
		$this->dt_contratacao 		= $row['dt_contratacao'];
		$this->ds_nome       		= $row['ds_nome'];
		$this->ds_endereco   		= $row['ds_endereco'];
		$this->nr_endereco    		= $row['nr_endereco'];
		$this->ds_complemento 		= $row['ds_complemento'];
		$this->ds_cep         		= $row['ds_cep'];
		$this->ds_bairro      		= $row['ds_bairro'];
		$this->id_cidade      		= $row['id_cidade'];
		$this->ds_cargo       		= $row['ds_cargo'];
		$this->ds_email      		= $row['ds_email'];
		$this->ds_cpf				= $row['ds_cpf'];
		$this->ds_rg				= $row['ds_rg'];
		$this->nr_telefone          = $row['nr_telefone'];
		$this->nr_celular           = $row['nr_celular'];
		$this->estado               = $row['id_estado'];
		$this->ds_pais              = $row['ds_pais'];
		}

	function load($id){
		$row = $this->find(array($id, $via))->current();
		$this->populate($row);
	}

    public function salvar(){
    	$dados = array('id_funcionario'	=>$this->id_pessoa,
				 	   'dt_contratacao'	=>$this->dt_contratacao,
    					'ds_cargo'      =>$this->ds_cargo,
    					'ds_nome' 		=>$this->ds_nome,
						'ds_endereco'   =>$this->ds_endereco, 
						'nr_endereco'   =>$this->nr_endereco,
						'ds_complemento'=>$this->ds_complemento,
						'ds_cep'		=>$this->ds_cep,
						'ds_bairro'		=>$this->ds_bairro,
						'id_cidade' 	=>$this->id_cidade,
						'ds_cargo'      =>$this->ds_cargo,
						'ds_email'      =>$this->ds_email,
						'ds_cpf'		=>$this->ds_cpf,
						'ds_rg'			=>$this->ds_rg,
						'nr_telefone'	=>$this->nr_telefone,
						'nr_celular'	=>$this->nr_celular);
    	if ($this->id_funcionario == null){
			$this->id_funcionario = $this->insert($dados);
    	}
    	else {
    		$where = "id_funcionario = " . $this->id_pessoa;
			$this->update($dados, $where);
    	}
		return $this->id_funcionario;
    }

	public function excluir($id){
    	$where = "id_funcionario=".$id;
    	$this->delete($where);
    	parent::excluir($id);
	}

	public function buscar($ds_nome, $ds_empresa, $ds_cpf, $ds_rg, $id_cidade, $id_estado, $order, $asc){
    	$db = Zend_Registry::get('db');
    		$sql = 'select pef.ds_nome,
    					   pf.ds_cpf,
    					   s.ds_sexo,
    				       pf.ds_rg,
    					   pf.ds_email,
    					   cv.ds_civil,
    					   c.id_cidade,
    					   e.ds_estado,
    					   pef.ds_endereco,
    					   pef.nr_endereco,
    					   pef.ds_bairro,
    					   pef.ds_complemento,
    					   pef.ds_cep,
    					   pef.nr_telefone,
    					   pef.nr_celular,
    					   f.id_funcionario,
    					   f.dt_contratacao
    				from pessoa_fisica pf,
    					 pessoa pef,
    					 funcionario f,
    					 cidade c,
    					 estado e,
    					 sexo s,
    					 estado_civil cv
    				where 	f.id_funcionario = pf.id_fisica
    					and pf.id_fisica = pef.id_pessoa
    					and pf.id_sexo = s.id_sexo
    					and pf.id_civil = cv.id_civil
    					and c.id_cidade = pef.id_cidade
    					and e.id_estado = c.id_estado';

		if ($ds_nome!=null){
    		$sql .=' and (pef.ds_nome like("%'.$ds_nome.'%"))';
    	}

		if ($ds_cpf!=null){
			$sql .=' and pf.ds_cpf like ("%'.$ds_cpf.'%")';
    	}
		$orderBy = "asc";
		if($asc == 1){
			$orderBy = "desc";
		}
		$sql .= " order by " . $order . " ".$orderBy;
		return $db->query($sql)->fetchAll();
    }
}